package com.apac.bom;

import java.io.Serializable;
import javax.persistence.*;

import org.codehaus.jackson.annotate.JsonIgnore;

import java.util.Date;
import java.util.List;


/**
 * The persistent class for the employee_masterlist_tbl database table.
 * 
 */
@Entity
@Table(name="employee_masterlist_tbl")
public class Employee extends AbstractBOM implements Serializable {
	private static final long serialVersionUID = 1L;

	@Id
	@Column(name="EMP_ID_NO")
	private String empIdNo;

	@Temporal(TemporalType.DATE)
	@Column(name="EMP_BDAY")
	private Date empBday;

	@Column(name="EMP_CEL_NO")
	private String empCelNo;

	@Column(name="EMP_CNTCT_ADDR")
	private String empCntctAddr;

	@Column(name="EMP_CNTCT_NO")
	private String empCntctNo;

	@Column(name="EMP_CNTCT_PRSN")
	private String empCntctPrsn;

	@Column(name="EMP_CNTCT_REL")
	private String empCntctRel;

	@Column(name="EMP_COLL")
	private String empColl;

	@Column(name="EMP_CTSHP")
	private String empCtshp;

	@Temporal(TemporalType.DATE)
	@Column(name="EMP_DATE_HIRED")
	private Date empDateHired;

	@Column(name="EMP_EADD")
	private String empEadd;

	@Column(name="EMP_EXP_YRS")
	private byte empExpYrs;

	@Column(name="EMP_FIRST_NAME")
	private String empFirstName;

	@Column(name="EMP_GRAD")
	private String empGrad;

	@Column(name="EMP_HDMF_NO")
	private String empHdmfNo;

	@Column(name="EMP_HLTH_CARD_NO")
	private String empHlthCardNo;

	@Column(name="EMP_HLTH_CARD_PREM")
	private String empHlthCardPrem;

	@Column(name="EMP_LAND_NO")
	private String empLandNo;

	@Column(name="EMP_LAST_NAME")
	private String empLastName;

	@Column(name="EMP_LICSN")
	private String empLicsn;

	@Column(name="EMP_MID_NAME")
	private String empMidName;

	@Column(name="EMP_PHL_HLTH_NO")
	private String empPhlHlthNo;

	 @Lob
     @Column(name="EMP_PHOTO", length=100000)
	private byte[] empPhoto;

	@Column(name="EMP_PRES_ADDR")
	private String empPresAddr;

	@Column(name="EMP_PROV_ADDR")
	private String empProvAddr;

	@Column(name="EMP_RMKS")
	private String empRmks;

	@Column(name="EMP_SKILLS")
	private String empSkills;

	@Column(name="EMP_SSS_NO")
	private String empSssNo;

	@Column(name="EMP_TIN")
	private String empTin;

	//bi-directional many-to-one association to EmployeeAccountRequirement
	
	@OneToMany(mappedBy="employee",cascade=CascadeType.PERSIST)
	private List<EmployeeAccountRequirement> employeeAccountRequirements;

	//bi-directional many-to-one association to Reference
	@ManyToOne
	@JoinColumn(name="EMP_CV_STAT")
	private Reference empCvStat;

	//bi-directional many-to-one association to Reference
	@ManyToOne
	@JoinColumn(name="EMP_GNDR")
	private Reference empGndr;

	//bi-directional many-to-one association to Reference
	@ManyToOne
	@JoinColumn(name="EMP_STATUS")
	private Reference empStatus;

	//bi-directional many-to-one association to User
	@JoinColumn(name="USER_ID")
	private User user;

	//bi-directional many-to-one association to EmployeeProject
	@OneToMany(mappedBy="employee")
	private List<EmployeeProject> employeeProjects;

	//bi-directional many-to-one association to EmploymentSalaryHistory
	@OneToMany(mappedBy="employee")
	private List<EmploymentSalaryHistory> employmentSalaryHistory;

	//bi-directional many-to-one association to HealthCardDependent
	@OneToMany(mappedBy="employee")
	private List<HealthCardDependent> healthCardDependents;

	public Employee() {
	}

	public String getEmpIdNo() {
		return this.empIdNo;
	}

	public void setEmpIdNo(String empIdNo) {
		this.empIdNo = empIdNo;
	}

	public Date getEmpBday() {
		return this.empBday;
	}

	public void setEmpBday(Date empBday) {
		this.empBday = empBday;
	}

	public String getEmpCelNo() {
		return this.empCelNo;
	}

	public void setEmpCelNo(String empCelNo) {
		this.empCelNo = empCelNo;
	}

	public String getEmpCntctAddr() {
		return this.empCntctAddr;
	}

	public void setEmpCntctAddr(String empCntctAddr) {
		this.empCntctAddr = empCntctAddr;
	}

	public String getEmpCntctNo() {
		return this.empCntctNo;
	}

	public void setEmpCntctNo(String empCntctNo) {
		this.empCntctNo = empCntctNo;
	}

	public String getEmpCntctPrsn() {
		return this.empCntctPrsn;
	}

	public void setEmpCntctPrsn(String empCntctPrsn) {
		this.empCntctPrsn = empCntctPrsn;
	}

	public String getEmpCntctRel() {
		return this.empCntctRel;
	}

	public void setEmpCntctRel(String empCntctRel) {
		this.empCntctRel = empCntctRel;
	}

	public String getEmpColl() {
		return this.empColl;
	}

	public void setEmpColl(String empColl) {
		this.empColl = empColl;
	}

	public String getEmpCtshp() {
		return this.empCtshp;
	}

	public void setEmpCtshp(String empCtshp) {
		this.empCtshp = empCtshp;
	}

	public Date getEmpDateHired() {
		return this.empDateHired;
	}

	public void setEmpDateHired(Date empDateHired) {
		this.empDateHired = empDateHired;
	}

	public String getEmpEadd() {
		return this.empEadd;
	}

	public void setEmpEadd(String empEadd) {
		this.empEadd = empEadd;
	}

	public byte getEmpExpYrs() {
		return this.empExpYrs;
	}

	public void setEmpExpYrs(byte empExpYrs) {
		this.empExpYrs = empExpYrs;
	}

	public String getEmpFirstName() {
		return this.empFirstName;
	}

	public void setEmpFirstName(String empFirstName) {
		this.empFirstName = empFirstName;
	}

	public String getEmpGrad() {
		return this.empGrad;
	}

	public void setEmpGrad(String empGrad) {
		this.empGrad = empGrad;
	}

	public String getEmpHdmfNo() {
		return this.empHdmfNo;
	}

	public void setEmpHdmfNo(String empHdmfNo) {
		this.empHdmfNo = empHdmfNo;
	}

	public String getEmpHlthCardNo() {
		return this.empHlthCardNo;
	}

	public void setEmpHlthCardNo(String empHlthCardNo) {
		this.empHlthCardNo = empHlthCardNo;
	}

	public String getEmpHlthCardPrem() {
		return this.empHlthCardPrem;
	}

	public void setEmpHlthCardPrem(String empHlthCardPrem) {
		this.empHlthCardPrem = empHlthCardPrem;
	}

	public String getEmpLandNo() {
		return this.empLandNo;
	}

	public void setEmpLandNo(String empLandNo) {
		this.empLandNo = empLandNo;
	}

	public String getEmpLastName() {
		return this.empLastName;
	}

	public void setEmpLastName(String empLastName) {
		this.empLastName = empLastName;
	}

	public String getEmpLicsn() {
		return this.empLicsn;
	}

	public void setEmpLicsn(String empLicsn) {
		this.empLicsn = empLicsn;
	}

	public String getEmpMidName() {
		return this.empMidName;
	}

	public void setEmpMidName(String empMidName) {
		this.empMidName = empMidName;
	}

	public String getEmpPhlHlthNo() {
		return this.empPhlHlthNo;
	}

	public void setEmpPhlHlthNo(String empPhlHlthNo) {
		this.empPhlHlthNo = empPhlHlthNo;
	}

	@JsonIgnore
	public byte[] getEmpPhoto() {
		return this.empPhoto;
	}

	public void setEmpPhoto(byte[] empPhoto) {
		this.empPhoto = empPhoto;
	}

	public String getEmpPresAddr() {
		return this.empPresAddr;
	}

	public void setEmpPresAddr(String empPresAddr) {
		this.empPresAddr = empPresAddr;
	}

	public String getEmpProvAddr() {
		return this.empProvAddr;
	}

	public void setEmpProvAddr(String empProvAddr) {
		this.empProvAddr = empProvAddr;
	}

	public String getEmpRmks() {
		return this.empRmks;
	}

	public void setEmpRmks(String empRmks) {
		this.empRmks = empRmks;
	}

	public String getEmpSkills() {
		return this.empSkills;
	}

	public void setEmpSkills(String empSkills) {
		this.empSkills = empSkills;
	}

	public String getEmpSssNo() {
		return this.empSssNo;
	}

	public void setEmpSssNo(String empSssNo) {
		this.empSssNo = empSssNo;
	}

	public String getEmpTin() {
		return this.empTin;
	}

	public void setEmpTin(String empTin) {
		this.empTin = empTin;
	}
	
	@JsonIgnore
	public List<EmployeeAccountRequirement> getEmployeeAccountRequirements() {
		return this.employeeAccountRequirements;
	}

	public void setEmployeeAccountRequirements(List<EmployeeAccountRequirement> employeeAccountRequirements) {
		this.employeeAccountRequirements = employeeAccountRequirements;
	}

	@JsonIgnore
	public Reference getEmpCvStat() {
		return this.empCvStat;
	}

	public void setEmpCvStat(Reference empCvStat) {
		this.empCvStat = empCvStat;
	}

	@JsonIgnore
	public Reference getEmpGndr() {
		return this.empGndr;
	}

	public void setEmpGndr(Reference empGndr) {
		this.empGndr = empGndr;
	}

	@JsonIgnore
	public Reference getEmpStatus() {
		return this.empStatus;
	}

	public void setEmpStatus(Reference empStatus) {
		this.empStatus = empStatus;
	}

	@JsonIgnore
	public User getUser() {
		return this.user;
	}

	public void setUser(User user) {
		this.user = user;
	}

	public List<EmployeeProject> getEmployeeProjects() {
		return this.employeeProjects;
	}

	public void setEmployeeProjects(List<EmployeeProject> employeeProjects) {
		this.employeeProjects = employeeProjects;
	}

	public List<EmploymentSalaryHistory> getEmploymentSalaryHistory() {
		return this.employmentSalaryHistory;
	}

	public void setEmploymentSalaryHistory(List<EmploymentSalaryHistory> employmentSalaryHistory) {
		this.employmentSalaryHistory = employmentSalaryHistory;
	}

	public List<HealthCardDependent> getHealthCardDependents() {
		return this.healthCardDependents;
	}

	public void setHealthCardDependents(List<HealthCardDependent> healthCardDependents) {
		this.healthCardDependents = healthCardDependents;
	}

}